package cc.rengu.igas.bsps.common.dao;

import cc.rengu.igas.bsps.common.entity.UserInfo;

import java.util.List;

/**
 * 用户信息表操作接口
 * Created by 王成 on 2018/6/14.
 */
public interface UserInfoMapper {
    /**
     * 登记用户信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int insertBspUserInfo(UserInfo userInfo) throws Exception;

    /**
     * 根据主键查询用户信息
     *
     * @param instId 机构标识
     * @param userId 用户标识
     * @return 用户信息
     */
    UserInfo selectBspUserInfoByPrimaryKey(String instId, String userId) throws Exception;

    /**
     * 根据主键更新用户信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBspUserInfoByPrimaryKey(UserInfo userInfo) throws Exception;

    /**
     * 更新用户密码及状态
     *
     * @param instId     机构标识
     * @param userId     用户标识
     * @param password   用户密码
     * @param userStatus 用户状态
     * @return 0-成功，其它-失败
     */
    int updateBspUserStatusByPrimaryKey(String instId, String userId, String password, String userStatus) throws Exception;

    /**
     * 更新用户登录失败信息
     *
     * @param userInfo 用户信息
     * @return 0-成功，其它-失败
     */
    int updateBspUserLoginInfoByPrimaryKey(UserInfo userInfo) throws Exception;

    /**
     * 更新用户密码
     * *@param instId 机构标识
     *
     * @param userId   用户标识
     * @param password 用户密码
     * @return 0-成功，其它-失败
     */
    int updateBspUserTransPasswordByPrimaryKey(String instId, String userId, String password) throws Exception;

    /**
     * 根据用户登录账户查询用户信息
     *
     * @param instId      机构标识
     * @param userLoginId 用户登录账户
     * @return 用户信息
     */
    List<UserInfo> selectBspsUserInfoByUserLoginId(String instId, String userLoginId) throws Exception;
}
